/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.general.controlador;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.abstracts.ControladorAbstract;
import sv.com.intesal.general.bean.Pais;
import sv.com.intesal.general.sql.SQLPais;

/**
 *
 * @author ejerez
 */
public class PaisControlador extends ControladorAbstract {

    public void insert(Pais p) throws Exception {
        try {
            super.setPreparedStatement(SQLPais.insert);
            super.ps.setString(1, p.getNombre_p());
            super.ps.setString(2, p.getNacionalidad_p());
            super.ps.setString(3, super.v.getEstado(p.getEstado_filtro_p()));
            super.ps.executeUpdate();

        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public void update(Pais p) throws Exception {
        try {
            super.setPreparedStatement(SQLPais.update);
            super.ps.setString(1, p.getNombre_p());
            super.ps.setString(2, p.getNacionalidad_p());
            super.ps.setString(3, super.v.getEstado(p.getEstado_filtro_p()));
            super.ps.setInt(4, p.getCodigo_p());
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<Pais> getPaises() throws Exception {
        List<Pais> lista = new ArrayList<Pais>();
        try {
            this.getExecuteQuery(SQLPais.getPaises);
            while (super.rs.next()) {
                lista.add(this.getPais(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<Pais> getPaisesActivos() throws Exception {
        List<Pais> lista = new ArrayList<Pais>();
        try {
            this.getExecuteQuery(SQLPais.getPaisesActivos);
            while (super.rs.next()) {
                lista.add(this.getPais(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    private Pais getPais(ResultSet rs) throws Exception {
        try {
            Pais p = new Pais();
            p.setCodigo_p(rs.getInt("codigo_p"));
            p.setNombre_p(rs.getString("nombre_p"));
            p.setNacionalidad_p(rs.getString("nacionalidad_p"));
            p.setEstado_p(rs.getString("estado_p"));
            p.setEstado_filtro_p(v.getEstado(rs.getString("estado_p")));
            return p;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
